package com.swagger.demo.util;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * creat by
 *
 * @author heyang
 * @date 2020/9/10 16:46
 */
@Retention(RUNTIME)
@Target({METHOD, FIELD})
public @interface Export {

    /**
     * 字段数组<br/>
     * 该注解只用于 Entity 对象<br/>
     * 通过该注解可以直接获取 Entity 中的任意字段对应的值<br/>
     *
     * @return
     */
    public abstract String[] fields();

    /**
     * 数据值是否来自当前对象<br/>
     * 通常关联表关系的数据都是来自关联对象<br/>
     * 默认 false<br/>
     *
     * @return
     */
    public abstract boolean oneself() default false;

    /**
     * 导出集合, 一对多或多对多关系时使用<br/>
     * 默认 false<br/>
     *
     * @return
     */
    public abstract boolean iterable() default false;

}
